<script>
	import Vue from 'vue'
	import {
		mapMutations
	} from 'vuex';
	export default {
		//使用方法
		//getApp().globalData.showLoginTip = false
		//console.log(getApp().globalData.text)

		globalData: {
			showLoginTip: false,
		},
		onLaunch() {
			// 此版本发布于2022-10-23
			const version = '0.6.5'
			// 开发环境才提示，生产环境不会提示
			// if (process.env.NODE_ENV === 'development') {
			// 	console.log(
			// 		`\n %c \u6838\u5fc3\u5546\u57ce\u7cfb\u7edf\u0020\u0043\u006f\u0072\u0065\u0053\u0068\u006f\u0070 V${version} %c \u0068\u0074\u0074\u0070\u0073\u003a\u002f\u002f\u0077\u0077\u0077\u002e\u0063\u006f\u0072\u0065\u0073\u0068\u006f\u0070\u002e\u0063\u006e\u002f \n\n`,
			// 		'color: #ffffff; background: #3c9cff; padding:5px 0;',
			// 		'color: #3c9cff;background: #f1f1f1; padding:5px 0;');
			// }

			// #ifdef MP-WEIXIN
			this.autoUpdate();
			// #endif

			// #ifdef APP-PLUS || APP-PLUS-NVUE
			this.checkVersion()
			// #endif
			let userStore = uni.getStorageSync('userStore')
			if (userStore.name) {
				this.setUserStore(userStore)
			} else {
				this.$u.api.storeList({
					latitude: "0",
					limit: 10,
					longitude: "0",
					page: 1,
				}).then(e => {
					if (e.status) {
						let ustore = {
							name: e.data[0].storeName,
							id: e.data[0].id,
							address: e.data[0].address,
						}
						this.setUserStore(ustore)
					} else {
						this.$u.toast("门店数据获取失败。");
					}
				});
			}
			// 获取店铺配置信息  全局只请求一次
			this.$u.api.shopConfigV2({
				appid:uni.getAccountInfoSync().miniProgram.appId,
				code:'0'
			}).then(res => {
				this.$store.commit('config', res.data)
			})
			//获取三级联动城市信息
			this.$u.api.getAreaList().then(res => {
				if (res.status) {
					this.$db.set('areaList', res.data)
				}
			});
		},
		onShow: function(option) {
			// let _this = this
			// if (Object.keys(option.query).length !== 0) {
			// 	this.$u.api.changeStore({
			// 		id: option.query.scene
			// 	}).then(res => {
			// 		if (res.status) {
			// 			let store = {};
			// 			store['id'] = res.data.store.id;
			// 			store['name'] = res.data.store.storeName;
			// 			store['mobile'] = res.data.store.mobile;
			// 			store['address'] = res.data.store.address;
			// 			_this.setUserStore(store)
			// 			_this.$db.set('userToken', res.data.auth.token)
			// 		}
			// 	})
			// }
		},
		onHide: function() {
			//console.log('App Hide')
		},
		methods: {
			...mapMutations(['setUserStore']),
			// #ifdef MP-WEIXIN
			//微信小程序检测更新措施，方式更新功能后，要等待24小时内才刷新的问题。
			autoUpdate() {
				var self = this
				// 获取小程序更新机制兼容
				if (wx.canIUse('getUpdateManager')) {
					//console.log("进入小程序自动更新检测");
					const updateManager = wx.getUpdateManager()
					//1. 检查小程序是否有新版本发布
					updateManager.onCheckForUpdate(function(res) {
						//console.log("进入小程序检测是否需要自动更新");
						//console.log(res);
						// 请求完新版本信息的回调
						if (res.hasUpdate) {
							//检测到新版本，需要更新，给出提示
							wx.showModal({
								title: '更新提示',
								content: '检测到新版本，是否下载新版本并重启小程序？',
								success: function(res) {
									if (res.confirm) {
										//2. 用户确定下载更新小程序，小程序下载及更新静默进行
										self.downLoadAndUpdate(updateManager)
									} else if (res.cancel) {
										//用户点击取消按钮，需要强制更新，二次弹窗
										wx.showModal({
											title: '温馨提示~',
											content: '本次版本更新涉及到新的功能添加，旧版本无法正常访问的哦~',
											showCancel: false,
											confirmText: "确定更新",
											success: function(res) {
												if (res.confirm) {
													//下载新版本，并重新应用
													self.downLoadAndUpdate(updateManager)
												}
											}
										})
									}
								}
							})
						}
					})
				} else {
					// 如果希望用户在最新版本的客户端上体验您的小程序，可以这样子提示
					wx.showModal({
						title: '提示',
						content: '当前微信版本过低，无法使用该功能，请升级到最新微信版本后重试。'
					})
				}
			},
			downLoadAndUpdate(updateManager) {
				var self = this
				wx.showLoading();
				//静默下载更新小程序新版本
				updateManager.onUpdateReady(function() {
					wx.hideLoading()
					//新的版本已经下载好，调用 applyUpdate 应用新版本并重启
					updateManager.applyUpdate()
				})
				updateManager.onUpdateFailed(function() {
					// 新的版本下载失败
					wx.showModal({
						title: '已经有新版本了哟~',
						content: '新版本已经上线啦~，请您删除当前小程序，重新搜索打开哟~',
					})
				})
			},
			// #endif
			// #ifdef APP-PLUS || APP-PLUS-NVUE
			// app更新检测
			checkVersion() {
				// 获取应用版本号
				let _this = this;
				let version = plus.runtime.version;
				console.log('版本号：' + version);
				//检测当前平台，如果是安卓则启动安卓更新
				uni.getSystemInfo({
					success: res => {
						console.log('当前平台：' + res.platform);
						if (res.platform == 'android') {
							_this.updateHandler(version);
						}
					}
				})
			},
			// 更新操作
			updateHandler(version) {
				let _this = this;
				this.$u.api.getAppVersion().then(res => {
					if (res.status && res.data) {
						if (res.data.version !== '' && res.data.version > version) {
							uni.showModal({
								//提醒用户更新
								title: '更新提示',
								content: res.data.note,
								success: function(resOpen) {
									if (resOpen.confirm) {
										plus.runtime.openURL(res.data.android)
										console.log('用户点击确定');
									} else if (resOpen.cancel) {
										console.log('用户点击取消');
									}
								}
							})
						}
					}
				});
			}
			// #endif
		}
	}
</script>
<style lang="scss">
	/* 注意要写在第一行，同时给style标签加入lang="scss"属性 */
	@import "@/uni_modules/uview-ui/index.scss";
	/*公共css */
	@import '@/static/style/coreCommon.scss';
	@import "@/static/style/tags";

	// vue App的样式
	/* #ifdef APP-PLUS */
	@import "@/static/style/style.app.scss";
	/* #endif */

	// 小程序特有的样式
	/* #ifdef MP */
	@import "@/static/style/style.mp.scss";
	/* #endif */
</style>
